package com.xuecheng.content.service;

import com.xuecheng.content.model.dto.BindTeachplanMediaDto;
import com.xuecheng.content.model.dto.SaveTeachplanDto;
import com.xuecheng.content.model.dto.TeachplanDto;
import com.xuecheng.content.model.po.TeachplanMedia;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;

import java.util.List;

/**
 * 课程基本信息管理业务接口
 * @Author: chenheng
 * @Date: 2023/12/18 10:45
 */
public interface TeachplanService {
    List<TeachplanDto> findTeachplanTree(Long courseId);

    /**
     * 根据 层级，分为1、2、3级来区分插入的是章节还是小节
     * @param dto
     */
    void saveTeachplan(SaveTeachplanDto dto);

    /**
     * 根据课程计划id删除
     * 删除第一级别的大章节时要求大章节下边没有小章节时方可删除。
     * 删除第二级别的小章节的同时需要将teachplan_media表关联的信息也删除。
     * @param coursePlanId
     */
    void deleteTeachplan(Long coursePlanId);

    /**
     * 根据课程coursePlanId 下移课程
     * @param coursePlanId
     */
    void movedownTeachplan(Long coursePlanId);

    /**
     * 实现课程与媒体资源绑定
     * @param bindTeachplanMediaDto 绑定的参数
     * @return TeachplanMedia
     */
    public TeachplanMedia associationMedia(BindTeachplanMediaDto bindTeachplanMediaDto);

    public void deletAssociationMedia(Long teachPlanId,String mediaId);

}
